package models;

import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;

import play.db.jpa.GenericModel;

@Entity
@Table(name="partida")
public class Partida extends GenericModel{

	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	private int id;
	
	private double cotacaoMandante;
	
	private double cotacaoVisitante;

	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="id_campeonato")
	private Campeonato campeonato;

	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="id_mandante")
	private Equipe mandante;

	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="id_visitante")
	private Equipe visitante;

	@OneToOne(cascade=CascadeType.ALL)
	@JoinColumn(name="id_placar")
	private Resultado placar;
	
	@OneToMany(mappedBy="partida", cascade=CascadeType.ALL)
	private List<Aposta> apostas;
	
	public Partida() {
	}

	public Partida(Campeonato campeonato, Equipe mandante, Equipe visitante,
			double cotacaoMandante, double cotacaoVisitante) {
		this.campeonato = campeonato;
		this.mandante = mandante;
		this.visitante = visitante;
		this.cotacaoMandante = cotacaoMandante;
		this.cotacaoVisitante = cotacaoVisitante;
	}

	public Campeonato getCampeonato() {
		return campeonato;
	}

	public void setCampeonato(Campeonato campeonato) {
		this.campeonato = campeonato;
	}

	public Equipe getMandante() {
		return mandante;
	}

	public void setMandante(Equipe mandante) {
		this.mandante = mandante;
	}

	public Equipe getVisitante() {
		return visitante;
	}

	public void setVisitante(Equipe visitante) {
		this.visitante = visitante;
	}

	public double getCotacaoMandante() {
		return cotacaoMandante;
	}

	public void setCotacaoMandante(double cotacaoMandante) {
		this.cotacaoMandante = cotacaoMandante;
	}

	public double getCotacaoVisitante() {
		return cotacaoVisitante;
	}

	public void setCotacaoVisitante(double cotacaoVisitante) {
		this.cotacaoVisitante = cotacaoVisitante;
	}

	public Resultado getPlacar() {
		return placar;
	}

	public void setPlacar(Resultado placar) {
		this.placar = placar;
	}
	
}
